97 research outputs found

    SAT Based Attacks on SipHash

    Get PDF
    SipHash is a proposed pseudorandom function (PRF) that is optimized for small message inputs. It is intended to be used as a message-authentication code (MAC). It uses a 128-bit secret key to compute the tag of a message. This project uses SAT based attacks on the primitive to perform partial key recovery and compares the effectiveness of these attacks against standard brute force approach that involves trying all possible combinations for the key bits. The primitive is converted into CNF and fed to an off-the-shelf SAT solver. The solver uses clause learning and if satisfiable, returns a set of values for the missing key bits. It also reports the number of conflicts that occurred before a solution was found. This is repeated several times for varying number of missing key bits and different versions of SipHash. It is then compared to the number of attempts to retrieve the missing key bits using brute force and the results are analyzed to check the effectiveness of SAT based attacks. iv Contents Abstract......................................

    Infrastructure for Distributed Applications in Ad Hoc Networks of Small Mobile Wireless Devices

    Get PDF
    Mobile wireless computing devices such as cellphones, pagers, personal digital assistants, pocket PCs, and tablet computers are all potential platforms for participating in small group, wireless, many-to-many distributed applications. The networking technology needed to support such applications is readily available. However, almost all existing middleware infrastructure for distributed applications was designed for central servers and wired connections. The Anhinga Infrastructure described here runs entirely on the wireless mobile devices and so does not require any central server support. The Anhinga Infrastructure provides a message broadcast ad hoc networking protocol and a distributed computing platform based on lightweight versions of Java, Jini Network Technology, and tuple spaces

    Parallel Java: A Unified API for Shared Memory and Cluster Parallel Programming in 100% Java

    Get PDF
    Parallel Java is a parallel programming API whose goals are (1) to support both shared memory (thread-based) parallel programming and cluster (message-based) parallel programming in a single unified API, allowing one to write parallel programs combining both paradigms; (2) to provide the same capabilities as OpenMP and MPI in an object oriented, 100% Java API; and (3) to be easily deployed and run in a heterogeneous computing environment of single-core CPUs, multi-core CPUs, and clusters thereof. This paper describes Parallel Java’s features and architecture; compares and contrasts Parallel Java to other Java based parallel middleware libraries; and reports performance measurements of Parallel Java programs

    Parallel Java: An API for Teaching and Developing Parallel Programs in 100% Java

    Get PDF

    Solving an MRI spin relaxometry problem with parallel computing

    Get PDF
    MRI spin relaxometry is the process of recovering the spin density spectrum from the time samples of the spin signal for each pixel of a magnetic resonance image. Since healthy tissue exhibits different spin relaxation rates from diseased tissue, MRI spin relaxometry potentially has utility for diagnosing disease. However, recovering the spin relaxation rates involves solving an inverse problem which requires substantial computation. The computation\u27s running time can be reduced by processing the pixels in parallel on a parallel computer. A parallel program for solving the MRI spin relaxometry problem, SRSolve, was implemented in Java with MPI, its running time was measured on a 32-processor cluster parallel computer, and its performance was compared to the CONTIN program. CONTIN required about 44 sec on the average to solve one pixel and about 3600 sec to solve an entire 64x64-pixel test image (with 2,597 unmasked pixels) on the parallel computer. SRSolve required 3.04 sec on the average to solve one pixel and 263 sec to solve the entire image on the parallel computer

    Single block attacks and statistical tests on CubeHash

    Get PDF
    This paper describes a second preimage attack on the CubeHash cryptographic one-way hash function. The attack finds a second preimage in less time than brute force search for these CubeHash variants: CubeHash rr/bb-224 for b3˘e100b \u3e 100; CubeHashrr/bb-256 for b3˘e96b \u3e 96; CubeHashrr/bb-384 for b3˘e80b \u3e 80; and CubeHashrr/bb-512 for b3˘e64b \u3e 64. However, the attack does not break the CubeHash variants recommended for SHA-3. The attack requires minimal memory and can be performed in a massively parallel fashion. This paper also describes several statistical randomness tests on CubeHash. The tests were unable to disprove the hypothesis that CubeHash behaves as a random mapping. These results support CubeHash\u27s viability as a secure cryptographic hash function

    Many-to-Many Invocation: A New Object Oriented Paradigm for Ad Hoc Collaborative Systems

    Get PDF
    Many-to-Many Invocation (M2MI) is a new paradigm for building collaborative systems that run in wireless proximal ad hoc networks of xed and mobile computing devices. M2MI is useful for building a broad range of systems, including multiuser applications (conversations, groupware, multiplayer games); systems involving networked devices (printers, cameras, sensors); and collaborative middleware systems. M2MI provides an object oriented method call abstraction based on broadcasting. An M2MI invocation means \Every object out there that implements this interface, call this method. An M2MI-based application is built by de ning one or more interfaces, creating objects that implement those interfaces in all the participating devices, and broadcasting method invocations to all the objects on all the devices. M2MI is layered on top of a new messaging protocol, the Many-to-Many Protocol (M2MP), which broadcasts messages to all nearby devices using the wireless network\u27s inherent broadcast nature instead of routing messages from device to device. M2MI synthesizes remote method invocation proxies dynamically at run time, eliminating the need to compile and deploy proxies ahead of time. As a result, in an M2MI-based system, central servers are not required; network administration is not required; complicated, resource-consuming ad hoc routing protocols are not required; and system development and deployment are simplifi ed

    Many-to-Many Invocation: A New Framework for Building Collaborative Applications in Ad Hoc Networks

    Get PDF
    Many-to-Many Invocation (M2MI) is a new paradigm for building collaborative systems that run in wireless proximal ad hoc networks of fixed and mobile computing devices. M2MI is useful for building a broad range of systems, including service discovery frameworks; groupware for mobile ad hoc collaboration; systems involving networked devices (printers, cameras, sensors); and collaborative middleware systems. M2MI provides an object oriented method call abstraction based on broadcasting. An M2MI invocation means ``Every object out there that implements this interface, call this method.\u27\u27. M2MI is layered on top of a new messaging protocol, the Many-to-Many Protocol (M2MP), which broadcasts messages to all nearby devices using the wireless network\u27s inherent broadcast nature instead of routing messages from device to device. In an M2MI-based system, central servers are not required; network administration is not required; complicated, resource-consuming ad hoc routing protocols are not required; and system development and deployment are simplified
    • …
    corecore